#!/data/data/com.termux/files/usr/bin/bash
# 功能：支持自定义服务端/内存/插件/模组/面板的MC服务器部署

# ███ 参数配置区（用户可修改） ███
MC_VERSION="1.20.4"          # 服务端版本
SERVER_TYPE="paper"           # 可选purpur/fabric/vanilla
MEMORY="2G"                   # 内存分配（示例：1G/2048M）
PLUGINS_ENABLE=true           # 是否自动下载基础插件

# ███ 核心部署逻辑 ███
pkg update -y && pkg upgrade -y
pkg install openjdk-21 wget screen -y
termux-setup-storage

# 动态下载服务端
case $SERVER_TYPE in
  paper)
    wget "https://api.papermc.io/v2/projects/paper/versions/${MC_VERSION}/builds/latest/downloads/paper-${MC_VERSION}.jar" -O server.jar ;;
  purpur)
    wget "https://api.purpurmc.org/v2/purpur/${MC_VERSION}/latest/download" -O server.jar ;;
  fabric)
    wget "https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}/0.15.7/1.0.0/server/jar" -O server.jar ;;
  *) 
    wget "https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b5b4f01cc9f23/server.jar" ;;
esac

# 生成自适应配置
cat > start.sh <<EOF
#!/bin/bash
java -Xmx${MEMORY} -Xms${MEMORY} \\
     -XX:+UseZGC -XX:MaxGCPauseMillis=50 \\
     -Dpurpur.use-alternate-keepalive=true \\
     -jar server.jar --nogui
EOF
chmod +x start.sh

# 插件自动部署
if $PLUGINS_ENABLE; then
  mkdir -p plugins
  wget -P plugins/ \
    https://dev.bukkit.org/projects/worldedit/files/latest \
    https://dev.bukkit.org/projects/vault/files/latest
fi

# ███ 管理面板集成 ███
git clone https://github.com/MCSManager/MCSManager
cd MCSManager && npm install --legacy-peer-deps
cat > config/configuration.json <<EOF
{
  "port": 23333,
  "language": "zh_cn",
  "remoteStorage": "/sdcard/mcserver"
}
EOF

# ███ 快捷控制命令 ███
cat > /data/data/com.termux/files/usr/bin/mcctl <<EOF
case \$1 in
start)
  screen -dmS mc_server ./start.sh ;;
stop)
  screen -S mc_server -X stuff "stop^M" ;;
mods)
  ln -s \$PWD/mods /sdcard/MinecraftMods ;;
config)
  vim server.properties ;;
*)
  echo "用法: start|stop|mods|config" ;;
esac
EOF
chmod +x /data/data/com.termux/files/usr/bin/mcctl

# 完成提示
termux-notification -t "部署完成" -c "输入 mcctl start 启动"
